package com.example.concurrency.immutable;

import com.example.concurrency.annotation.NotThreadSafe;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;

import java.util.Map;

/**
 * 不可变对象
 *
 * @author 文希
 * @create 2019-05-19 14:11
 */
@Slf4j
@NotThreadSafe
public class ImmutableExample1 {

    private final static Integer a = 1;
    private final static String b ="2";
    private final static Map<Integer,Integer> map = Maps.newHashMap();

    static {
        map.put(1, 2);
        map.put(3, 4);
        map.put(5, 6);
    }

    public static void main(String[] args) {
//        a = 2;
//        b = "3";
        map.put(1,3);
        // 在这里可以修改对象中的值，但是不能修改对象指向的位置。顾此处不安全
        log.info("{}",map.get(1)); // 3
    }

    private void test(final int a){
//        a = 41;
    }
}
